---
title: 'How to register your own Google Calendar OAuth app'
sidebarTitle: 'Google Calendar Setup'
description: 'Register an OAuth app with Google Calendar and connect it to Nango'
---

This guide shows you how to register your own app with Google to obtain your OAuth credentials (client id & secret). These are required to let your users grant your app access to their Google Calendar account.

<Info>
  You will need to pass a Google review to go live with your integration.

  [Follow our guide](/integrations/google-security-review) to get approved as fast as possible.
</Info>

<Steps>
  <Step title="Create a Google Cloud account">
    If you don't already have one, sign up for a [Google Cloud account](https://console.cloud.google.com/).
  </Step>
  <Step title="Create a new project">
    1. Go to the [Google Cloud Console](https://console.cloud.google.com/).
    2. Click on the project dropdown at the top left of the page.
    3. Click **New Project**.
    4. Enter a **Project Name** for your project.
    5. Under **Location**, select the appropriate organization or folder where this project should belong.
    <Note>If you're not part of an organization, it will default to No organization</Note>
    6. Click **Create** and wait for the project to be created.
    7. Select it from the project dropdown.
  </Step>
  <Step title="Enable the APIs you need">
    1. Go to the [API Library](https://console.cloud.google.com/apis/library) in the Google Cloud Console.
    2. Search for **Google Calendar API** and select the APIs you wish to integrate with, such as **Google Calendar API**, **CalDAV API**, etc., then click **Enable** for each.
  </Step>
  <Step title="Configure the OAuth consent screen">
    1. Go to **APIs & Services** > **OAuth consent screen** in the Google Cloud Console.
    2. Click **Get started**.
    3. Fill in all the required fields in the **App Information** form.
    4. Click **Next**. Select the appropriate Audience:
       - **External**: For applications available to any Google user
       - **Internal**: For applications restricted to users within your Google Workspace organization
    5. Click **Next**. Fill in the **Contact Information**; these are the email addresses that Google will use to notify you about any changes to your project.
    6. Click **Next**, then check the **I agree to the Google API Services: User Data Policy** checkbox, and click **Continue**.
    7. Add the scopes your application needs. Under **Data Access**, click **Add or Remove Scopes** and select the scopes that correspond to the APIs you enabled.

    <Note>Make sure to select scopes based on the APIs you enabled earlier when setting up the app. See [Google's OAuth 2.0 Scopes documentation](https://developers.google.com/identity/protocols/oauth2/scopes) for all available scopes.</Note>

    8. Under **Audience**, click **Add users** if you selected **External** user type (required for testing before verification).

    <Warning>In "Testing" mode with an external user type, refresh tokens expire in 7 days unless only basic scopes are used (userinfo.email, userinfo.profile, openid, or their [OpenID Connect equivalents](https://developers.google.com/identity/protocols/oauth2/scopes#openid-connect)). You can remove this 7-day limit by switching from Testing to Production in step 8 below.</Warning>
  </Step>
  <Step title="Create OAuth 2.0 credentials">
    1. Go to **APIs & Services** > **Credentials** in the Google Cloud Console.
    2. Click **Create Credentials** and select **OAuth client ID**.
    3. Select **Web application** as the application type.
    4. Enter a name for your OAuth client.
    5. Under **Authorized redirect URIs**, add `https://api.nango.dev/oauth/callback`.

    <Note>While setting up the OAuth credentials, the _Authorized JavaScript origins_ should be your site URL (`https://app.nango.dev` if you're testing from the Nango UI).</Note>

    6. Click **Create**.
    7. A dialog will appear with your client ID and client secret. Save these credentials securely as you'll need them when configuring your integration in Nango.

    <Note>Google allows up to 100 refresh tokens per account per OAuth client ID. New tokens overwrite the oldest without warning when the limit is reached.</Note>
  </Step>
  <Step title="Start building your integration">
    Follow the [_Quickstart_](/getting-started/quickstart) to build your integration.
  </Step>
  <Step title="Verify your app">
    Most Google Calendar scopes are marked "sensitive" or "restricted" by Google. You need to pass a Google review to go live.

   [Follow our guide](/integrations/google-security-review) to prepare and pass as quickly as possible.

   <Note>For applications using sensitive or restricted scopes, Google requires verification and a security assessment. This process can take several weeks to complete.</Note>
  </Step>
  <Step title="Publish your app (switch from Testing to Production)">
    To move your OAuth app from testing to production:
    1. Go to **APIs & Services** > **OAuth consent screen** > **Audience**.
    2. Click **Publish App** to switch your app from testing to production.
  </Step>
</Steps>

## Important considerations

**Refresh token expiration**

For information on why Google refresh tokens expire, see [Why is my Google refresh token expiring?](https://www.nango.dev/blog/google-oauth-invalid-grant-token-has-been-expired-or-revoked#why-was-the-refresh-token-revoked). For Google OAuth basics, see [Google's OAuth 2.0 documentation](https://developers.google.com/identity/protocols/oauth2).

---
